package com.dqyy.order.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dqyy.order.entity.Order;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;
import java.util.Map;

public interface OrderService extends IService<Order> {
    /**
     * 创建订单
     * @param dishIds 菜品ID列表
     * @param quantities 对应数量列表
     * @return 订单ID
     */
    Long createOrder(List<Long> dishIds, List<Integer> quantities);

    /**
     * 支付订单
     * @param orderId 订单ID
     * @return 是否支付成功
     */
    boolean payOrder(Long orderId);

    /**
     * 取消订单
     * @param orderId 订单ID
     * @return 是否取消成功
     */
    boolean cancelOrder(Long orderId);

    /**
     * 获取订单汇总信息
     * @return 订单汇总信息
     */
    Map<String, Object> getOrderSummary();

    /**
     * 分页查询订单列表
     * @param page 分页参数
     * @param status 订单状态（可选）
     * @return 分页订单列表
     */
    IPage<Order> getOrderList(Page<Order> page, Integer status);

    /**
     * 获取订单详情
     * @param orderId 订单ID
     * @return 订单详情（包含订单信息和订单明细）
     */
    Map<String, Object> getOrderDetail(Long orderId);
} 